# Stellar-parser

## Техническое Задание на парсер в сети Stellar

### Принцип работы: 
Предпочтительный язык программирования: C# или Pyton, можно любой другой.

Источник парсинга: https://stellar.expert/openapi.html (если будет отваливаться в бан, то делаем к проге меню настройки с заданием htpps прокси, на этот случай в настройках сделал форму для прокси), если не помогает, то цепляем данные отсюда https://developers.stellar.org/api .
Число потоков парсинга до 30. В меню настройки задаём число потоков.
Меню настроек вызывается по нажатию на них, по нажатию на них же и закрывается запоминая выставленные значения

Парсер не имеет установочного дистрибутива и запускается из папки.

Парсер должен стабильно работать на системе Windows server 2012R2 и на системах от Windows 7 и выше.

Парсер фильтрует токены по критериям и выдаёт результат в фаиле .xls в папке Reports, которая находится той же папке, в которой находится запускающий фаил парсера.

Парсинг возможен как с применением одного из критериев, так и с применением нескольких критериев одновременно устанавливаемых галочкой в интерфейсе.

Парсер проверяет работоспособность указываемого сайта токена, если такой указан.

При закрытии парсер запоминает последние заданные критерии поиска.

В кнопке Edit blockchain - раскрывается выбор сетей для парсинга. У нас пока только Stellar. Выбранная сеть открывается во вкладке, открытая вкладка подчеркивается свето-зеленой полоской.

Нажатие на кнопку Start запускает поиск. Пока поиск запущен горит зеленый индикатор.

Нажатие на кнопку Stop останавливает поиск. По умолчанию в не запущенном состоянии поиска всегда горит оранжевый индикатор.

Нажатие на кнопку Report открывает папку с отчетами.


Критерии поиска:
{Первичный поиск по параметрам сети "Network parameters" }

Rating: "установить численное значение от"

Total supply: "установить численное значение от"

First transaction: "Выбор даты с"

Trustlines total: "установить численное значение"

Trustlines authorized: "установить численное значение"

Trustlines funded: "установить численное значение"

Total payments count: "установить численное значение"

Overall payments volume: "установить численное значение"

Total trades count: "установить численное значение"

Overall traded volume: "установить численное значение"

Site: yes/none

Site valid on list: Галочка. "Выдавать только результаты с рабочими сайтами".


{После того как софт соберет ссылки на токены с заданными выше параметрами, эти токены пропускаются через пред-расчет (Pre-calculation)}

Last operation date: "Выбор даты с"

Average daily operation frequency: "установить численное значение"

Last trade date: "Выбор даты с"

Liquidity on ask: "установить численное значение от" - объём ликвидности в ask (красный столбец в разделе Markets) при Depth 100 и Precision 100, правое верхнее значение (пример https://stellar.expert/explorer/public/asset/MTL-GACKTN5DAZGWXRWB2WLM6OPBDHAMT6SJNGLJZPQMEZBUR4JUGBX2UK7V?filter=markets)

Liquidity on bid: "установить численное значение от" - объём ликвидности в bid (красный столбец в разделе Markets) при Depth 100 и Precision 100, правое нижнее значение (пример https://stellar.expert/explorer/public/asset/MTL-GACKTN5DAZGWXRWB2WLM6OPBDHAMT6SJNGLJZPQMEZBUR4JUGBX2UK7V?filter=markets)



### Выдача результата:

Фаил формата .xls именуется как result#-*.xls, где # - порядковый номер фаила в папке, а * - количество найденных токенов. Счетчик порядкового номера опеределяет количество фаилов с именем result.xls и добавляет единицу к следующему. Если имеются пропуски, например в папке есть result1.xls, и result3.xls парсер именует фаил выдачи как result2.xls

Пример:

result1-300.xls

result2-5412.xls

result3-34932.xls

В верхней первой строке (начиная со второй горизонтальной ячейки) выровненные по длине текста ячейки с наименованием критерия поиска.

Фаил .xls имеет возможность внутренней сортировки каждого из столбцов по возрастанию и убыванию.

В первой столбце (начиная со второй вертикальной ячейки) выровненные по длине текста ячейки с наименованием токена.

Наименование строк выдачи в фаиле .xls:

Rating

Total supply

First transaction

Trustlines total

Trustlines authorized

Trustlines funded

Total payments count

Overall payments volume

Total trades count

Overall traded volume

Asset authorization flags

Lock status

Site {В сортировке по сайте при отсутствии наименьшими считаются пустые поля}

Site valid

Last operation date

Average daily operation frequency

Last trade date

Liq. ask

Liq. bid


Шрифт текста: Franklin Gothic Medium Cond Высота шрифта: 10 Выравнивание ячеек по длине текста в ячейке с самым длинным текстом.



### Чек-лист тестировки перед сдачей парсера в работу:

- Оптимальность кода;
- Корректный парсинг данных критериев каждому критерию в отдельности и при применении нескольких критериев;
- Корректный расчет спаршенных критериев;
- Корректная и работоспособная сортировка в фаиле результата;
- Стабильность на Windows server 2012R2 и Windows 7 и выше;
- Корректное именование фаила результата;
- Корректная проверка работоспособности сайта токена при его наличии в результате;
- Корректная работа сортировка по сайту - при отсутствии наименьшими считаются пустые поля;
- Корректность шрифта текста в фаиле выдачи;
- Корректность высоты шрифта в фаиле выдачи;
- Корректное выравнивание в фаиле выдачи ячеек по длине текста в ячейке с самым длинным текстом;
- Программа запоминает последние введенные значения и отображает их при повторном запуске;
- Программа корректно выходит без подвисаний себя или ОС.